summaryrefslogtreecommitdiff
path: root/src-migrate/pages/api/product-variant/[id]
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-12-15 17:15:32 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-12-15 17:15:32 +0700
commitc9366090153e8aba3a673b2b77cbc8acc24e59a5 (patch)
tree9bad672e511d5585bb4be5b4e3190aca7c4a16af /src-migrate/pages/api/product-variant/[id]
parenta5321d82f4b5e8404f575f1d62e92d0322d78db9 (diff)
Update promotion program feature
Diffstat (limited to 'src-migrate/pages/api/product-variant/[id]')
-rw-r--r--src-migrate/pages/api/product-variant/[id]/promotion/highlight.tsx56
1 files changed, 56 insertions, 0 deletions
diff --git a/src-migrate/pages/api/product-variant/[id]/promotion/highlight.tsx b/src-migrate/pages/api/product-variant/[id]/promotion/highlight.tsx
new file mode 100644
index 00000000..0fe8fd1b
--- /dev/null
+++ b/src-migrate/pages/api/product-variant/[id]/promotion/highlight.tsx
@@ -0,0 +1,56 @@
+import { NextApiRequest, NextApiResponse } from "next";
+import { SolrResponse } from "~/common/types/solr";
+
+const SOLR_HOST = process.env.SOLR_HOST as string
+
+export default async function handler(req: NextApiRequest, res: NextApiResponse) {
+ const productId = req.query.id as string
+
+ if (req.method === 'GET') {
+ const types = ['bundling', 'discount_loading', 'merchandise']
+ const queryParams = new URLSearchParams({
+ q: `product_ids:${productId}`,
+ rows: '1'
+ })
+
+ let programs: any[] = []
+
+ for (const type of types) {
+ queryParams.set('fq', `type_value_s:${type}`)
+ const response = await fetch(`${SOLR_HOST}/solr/promotion_program_lines/select?${queryParams.toString()}`)
+ const data: SolrResponse<any[]> = await response.json()
+ programs.push(...data.response.docs)
+ }
+
+ programs = await extractPrograms(programs)
+ res.status(200).json({ data: programs })
+ }
+}
+
+const extractPrograms = async (programs: any[]) => {
+ const result = []
+
+ for (const program of programs) {
+ const data: any = {}
+
+ data.id = program.id
+ data.program_id = program.program_id_i
+ data.name = program.name_s
+ data.type = {
+ value: program.type_value_s,
+ label: program.type_label_s,
+ }
+ data.limit = program.package_limit_i
+ data.limit_user = program.package_limit_user_i
+ data.limit_trx = program.package_limit_trx_i
+ data.price = program.price_f
+ data.total_qty = program.total_qty_i
+
+ data.products = JSON.parse(program.products_s)
+ data.free_products = JSON.parse(program.free_products_s)
+
+ result.push(data)
+ }
+
+ return result
+} \ No newline at end of file